package com.campuscarbooking.api.dto.message;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalTime;

/**
 * Message DTO for reservation notifications sent via RabbitMQ
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ReservationNotificationMessage implements Serializable {
    private Long reservationId;
    private Long userId;
    private String userName;
    private String phoneNumber;
    private String userType; // STUDENT, TEACHER, etc.
    private Long scheduleId;
    private LocalDate scheduleDate;
    private LocalTime departureTime;
    private LocalTime arrivalTime;
    private String routeDirection; // A_to_B, B_to_A
    private String reservationStatus; // PENDING, CONFIRMED, CANCELLED
    private String notificationType; // CREATED, CONFIRMED, CANCELLED, REMINDER
    private BigDecimal price;
    private String seatNumber;
} 